package siruna.WE;

import siruna.WE.FileManager.FileManager;
import siruna.WE.rendering.OverView;
import siruna.WE.rendering.WidgetView;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;

/**
 * Klasse die gestart wordt  bij het opstarten van de applicatie
 * zoals gespecifieerd in AndroidManifest.xml
 * 
 */
public class WidgetEngine2 extends Activity {
	/**
	 * Object dat de bestands afhandeling voor zich neemt
	 */
	FileManager fm;

	/**
	 * Wordt opgeroepen wanneer de activiteit voor het eerst aangemaakt wordt
	 */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		
		//filemanager aanmaken
		fm = new FileManager(this);

		// zorg dat de juiste direcoties aanwezig zijn bij opstarten
		fm.createDirs();

		// om de verschillende widgetviews te kunnen aanspreken
		Intent i = new Intent(getApplicationContext(), OverView.class);
		startActivityForResult(i, Global.OVERVIEW);

	}

	/**
	 * methode die wordt aangeroepen tekens wanneer een sub activity sluit.
	 */
	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		super.onActivityResult(requestCode, resultCode, data);
		boolean close = false;

		System.out.println("requestCode:" + requestCode + "\n" + "resultCode: "
				+ resultCode + "\n");

		// Aflsuiten van de applicatie
		switch (resultCode) {
		case Global.SUBACTIVITY_RESULTCODE_CHAINCLOSE:
			close = true;
			this.setResult(Global.SUBACTIVITY_RESULTCODE_CHAINCLOSE);
			this.finish();
			break;
		}
		if (close == false) {// && data != null) {
			//Als je van het overzichtsscherm komt, 
			//eventueel een nieuwe widget starten
			if (requestCode == Global.OVERVIEW) {

				System.out.println("requestCode:" + requestCode + "\n"
						+ "resultCode: " + resultCode + "\n" + "widgetId: "
						+ data.getStringExtra("widgetId"));

				String id = data.getStringExtra("widgetId");
				System.out.println("id: " + id);
				if (id != null) {
					Intent i = new Intent(getApplicationContext(),
							WidgetView.class);
					i.putExtra("widgetId", id);
					startActivityForResult(i, Global.WIDGETVIEW);
				}

			} else if (requestCode == Global.WIDGETVIEW) {
				//als een widget sluit, direct het overzicht tonen
				Intent i = new Intent(getApplicationContext(), OverView.class);
				startActivityForResult(i, Global.OVERVIEW);
			}
		}

	}

	/**
	 * Methode die ervoor zorgt dat de juiste opties zichtbaar zijn in het menu
	 */
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		super.onCreateOptionsMenu(menu);

		menu.add(getString(R.string.exit));
		menu.add(getString(R.string.openwidget));
		return true;
	}

	/**
	 * Zorg dat de juiste handelingen worden uitgevoerd bij het selecteren van
	 * een optie
	 */
	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		super.onOptionsItemSelected(item);

		if (item.getTitle().equals(getString(R.string.exit))) {
			this.setResult(Global.SUBACTIVITY_RESULTCODE_CHAINCLOSE);
			this.finish();

		} else if (item.getTitle().equals(getString(R.string.openwidget))) {
			Intent i = new Intent(getApplicationContext(), OverView.class);
			startActivityForResult(i, Global.OVERVIEW);

		}
		return true;
	}

}